#ifndef CLIENT_H_
#define CLIENT_H_

#include <tr1/memory>
#include "MessageReceiver.h"

class Client : public MessageReceiver
{
public:
    Client(bool onServer = false);
    ~Client();

    virtual void init();
    void send(NetworkEvent& event);

protected:
    virtual void* createDisconnectEvent(NetworkEvent::Header& header);
    virtual void pushEvent(NetworkEvent::Header& header, void* data);

private:
    bool onServer;

};

typedef std::tr1::shared_ptr<Client> ClientPtr;

#endif
